package com.milo.common.utils;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;

/**
 * @author: Milogenius
 * @create: 2019-07-19 10:24
 * @description:
 **/
public class DateUtil {

    /**
     *获取当前系统时钟下的日期（YYYY-MM-DD）
     * @return
     */
    public static LocalDate localDate(){
        return LocalDate.now();
    }

    /**
     * 当前本地日期并添加i天（YYYY-MM-DD）
     * @param i
     * @return
     */
    public static LocalDate tomorrow(int i){
        return LocalDate.now().plusDays(i);
    }

    /**
     * 当前日期并减去i个月（YYYY-MM-DD）
     * @param i
     * @return
     */
    public static LocalDate previousMonthSameDay (int i){
        LocalDate previousMonthSameDay = LocalDate.now().minus(i, ChronoUnit.MONTHS);
        return previousMonthSameDay;
    }

    /**
     * 获取指定日期是一个星期中的那一天（YYYY-MM-DD）
     * @param dateStr
     * @return
     */
    public static DayOfWeek getDayOfWeek(String dateStr){
        DayOfWeek dayOfWeek = LocalDate.parse(dateStr).getDayOfWeek();
        return dayOfWeek;
    }

    /**
     * 判断一个日期是否发生在闰年
     * @param dateStr
     * @return
     */
    public static boolean isLeadYear(String dateStr){
        boolean leapYear = LocalDate.parse(dateStr).isLeapYear();
        return leapYear;
    }

    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.of("Aisa/Shanghai");
        System.out.println(zoneId);
    }
}
